package com.smart.community.user.vo;

import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 居民VO
 * 
 * @author Wu.Liang
 */
@Data
public class ResidentVO {

    /**
     * 居民ID
     */
    private Long id;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 房间ID
     */
    private Long roomId;

    /**
     * 居民类型：1-业主，2-租户，3-家属，4-访客
     */
    private Integer residentType;

    /**
     * 是否业主：0-否，1-是
     */
    private Integer isOwner;

    /**
     * 是否为主要成员：0-否，1-是
     */
    private Integer isPrimary;

    /**
     * 入住时间
     */
    private LocalDate moveInDate;

    /**
     * 搬出时间
     */
    private LocalDate moveOutDate;

    /**
     * 租赁合同开始日期
     */
    private LocalDate contractStartDate;

    /**
     * 租赁合同结束日期
     */
    private LocalDate contractEndDate;

    /**
     * 租金金额
     */
    private BigDecimal rentAmount;

    /**
     * 押金金额
     */
    private BigDecimal depositAmount;

    /**
     * 车辆信息
     */
    private String vehicleInfo;

    /**
     * 宠物信息
     */
    private String petInfo;

    /**
     * 特殊需求
     */
    private String specialNeeds;

    /**
     * 家庭关系：1-户主，2-配偶，3-子女，4-父母，5-其他
     */
    private Integer relationship;

    /**
     * 身份类型：1-身份证，2-护照，3-港澳通行证，4-台湾通行证
     */
    private Integer identityType;

    /**
     * 身份证件号
     */
    private String identityNo;

    /**
     * 真实姓名
     */
    private String realName;

    /**
     * 性别：0-未知，1-男，2-女
     */
    private Integer gender;

    /**
     * 出生日期
     */
    private LocalDate birthday;

    /**
     * 联系电话
     */
    private String phone;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 学历
     */
    private String education;

    /**
     * 职业
     */
    private String profession;

    /**
     * 工作单位
     */
    private String workUnit;

    /**
     * 籍贯
     */
    private String nativePlace;

    /**
     * 紧急联系人
     */
    private String emergencyContact;

    /**
     * 紧急联系电话
     */
    private String emergencyPhone;

    /**
     * 入住日期
     */
    private LocalDate checkInDate;

    /**
     * 搬出日期
     */
    private LocalDate checkOutDate;

    /**
     * 申请状态：0-待审核，1-已通过，2-已拒绝，3-已撤销
     */
    private Integer applyStatus;

    /**
     * 申请时间
     */
    private LocalDateTime applyTime;

    /**
     * 审核时间
     */
    private LocalDateTime approveTime;

    /**
     * 审核人
     */
    private Long approveBy;

    /**
     * 审核备注
     */
    private String approveRemark;

    /**
     * 租期开始日期
     */
    private LocalDate rentStartDate;

    /**
     * 租期结束日期
     */
    private LocalDate rentEndDate;

    /**
     * 租金（月）
     */
    private BigDecimal rentPrice;

    /**
     * 押金
     */
    private BigDecimal deposit;

    /**
     * 合同编号
     */
    private String contractNo;

    /**
     * 相关证件图片（JSON数组）
     */
    private String images;

    /**
     * 备注
     */
    private String remark;

    /**
     * 状态：0-已搬出，1-正常居住，2-暂时外出
     */
    private Integer status;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
} 